//约定字段
const path = require('path');//引入路径path
const fileUtils = require('../utils/file_utils');//导入文件读取工具file_utils
//WebSocket的使用
const WebSocket = require('ws')
//创建WebSocket服务端对象，绑定端口号9998
const wss = new WebSocket.Server({
    port:9998
})
//服务端开启了监听
module.exports.listen = ()=>{
    //对客户端的连接事件进行监听  client 客户端连接对象
wss.on('connection',client =>{
        console.log('有客户端连接成功...')
        //对客户端连接对象进行message事件的监听 msg由客户端发给服务端的数据
        client.on('message',async msg =>{
            console.log('客户端发数据给服务端：'+msg)
            let payload = JSON.parse(msg)//将前端传来的字段msg 用payload接收
            const action = payload.action
            // console.log(payload)       
            if(action === 'getData'){
                let filePath = `../data/${payload.chartName}.json`
                //payload.charName //trend seller map rank hot stock             
                filePath = path.join(__dirname, filePath)//拼接文件路径
                const res = await fileUtils.getFileJsonData(filePath)//读取文件内容
                //在服务端获取数据，增加一个data字段 data的值就为json文件内容
                payload.data = res
                // console.log(payload.data) 
                client.send(JSON.stringify(payload))
            }else{
                //action里 没getData 将接收的数据转发给每一个连接的客户端
                // wss.clients //所有的客户端的连接
                wss.clients.forEach(client => {
                    //像每一个客户端发送
                    client.send(msg)
                })
            }   
            //服务端往客户端发送数据
            // client.send('hello,客户端 我是后端')
        })
    })
}
